package com.elitesland.system.service;

import com.elitesland.core.base.PagingVO;
import com.elitesland.system.entity.SysRoleDO;
import com.elitesland.system.param.SysRoleNewParam;
import com.elitesland.system.param.SysRoleQueryParam;
import com.elitesland.system.param.SysRoleUpdateParam;
import com.elitesland.system.vo.SysRoleVO;

import java.util.List;
import java.util.Optional;
import java.util.Set;

/**
 * <pre>
 * [功能说明]
 * </pre>
 *
 * @author Mir
 * @date 2020/7/5
 */
public interface SysRoleService {

    PagingVO<SysRoleVO> search(SysRoleQueryParam param);

    Optional<SysRoleDO> one(Long roleId);

    Long create(SysRoleNewParam role);

    void update(SysRoleUpdateParam reqRole);

    Set<SysRoleVO> listByRoleIds(List<Long> roleIds);

    List<SysRoleDO> listAll();

    List<String> listMenusById(Long id);

    List<String> listActionsById(Long id);

    Boolean switchRoleStatus(Long id);
}
